/**
 *
 * @description: 公共请求方法
 * @author: junyong.hong
 * @createTime: 2019/11/2
 * @version: 1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 */
let store = require('../utils/store.js')
let system = store.getSystemInfo()

const clientInfo = {
    // 客户端类型：微信小程序（也有ios、安卓）
    'clientType': 'mp',
    // app名称叫什么
    'appnm': 'imoocpay',
    // 设备型号
    'model': system.model,
    // 系统版本
    'os': system.system,
    // 屏幕
    'screen': system.screenWidth + '*' + system.screenHeight,
    // 版本
    'version': App.version,
    //
    'channel': 'miniprogram'
}
const errMsg = '服务异常，请稍后重试...'

module.exports = {
    fetch: (url, data = {}, option = {}) => {
        let { loading = true, toast = true, isMock = false, method = 'get' } = option

        return new Promise((resolve, reject) => {
            if (loading) {
                wx.showLoading({
                    title: '加载中...',
                    mask: true
                })
            }

            let env = isMock ? App.config.mockApi : App.config.baseApi
            wx.request({
                url: env + url,
                data: data,
                method: method,
                header: {
                    'clientInfo': JSON.stringify(clientInfo)
                },
                success: function (result) {
                    let res = result.data
                    if (res.code == 0) {
                        if (loading) {
                            wx.hideLoading()
                        }
                        resolve(res.data)
                    } else {
                        if (toast) {
                            wx.showToast({
                                // 遮罩
                                mask: true,
                                title: res.message,
                                icon: 'none',
                            })
                        } else {
                            wx.hideLoading()
                        }

                        reject(res)
                    }
                },
                fail: function (e = { code: -1, msg: errMsg, errMsg }) {
                    // 小程序默认报错叫errMsg
                    let msg = e.errMsg
                    if (msg == 'request:fail timeout') {
                        msg = '服务请求超市，请稍后处理'
                    }

                    wx.showToast({
                        title: msg,
                        icon: 'none'
                    })
                    reject(e)

                }
            })
        })
    }
}

















